/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ppsa.common;

import com.ppsa.bean.AlertaBean;
import com.ppsa.bean.AreaBean;
import com.ppsa.bean.AsignacionBean;
import com.ppsa.bean.CargoBean;
import com.ppsa.bean.DocumentoBean;
import com.ppsa.bean.MenuBean;
import com.ppsa.bean.PerfilBean;
import com.ppsa.bean.ReunionBean;
import com.ppsa.bean.TareaBean;
import com.ppsa.bean.UsuarioBean;
import com.sun.xml.fastinfoset.util.StringArray;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 *
 * @author AdminTdp
 */
public class Util {

    public static String getParameterString( HttpServletRequest request , String Parameter, String CompareValue, String Value ){
        
        
    	return  ( request.getParameter(Parameter) == (CompareValue) ) ? Value : request.getParameter(Parameter).toString();	
    }

     public static String obtenerEquivalenciaPagina(String strA_pagina){
         HashMap<String,String> hml_pagina = new HashMap<String, String>();
         hml_pagina.put("usuario", Constantes.PAGINA_LISTADO_USARIO);
         hml_pagina.put("perfil", Constantes.PAGINA_LISTADO_PERFIL);
         hml_pagina.put("documento", Constantes.PAGINA_LISTADO_DOCUMENTO);
         hml_pagina.put("consulta_documento", Constantes.PAGINA_LISTADO_CONSULTA_DOCUMENTO);
         hml_pagina.put("mensaje", Constantes.PAGINA_LISTADO_USARIO);
         hml_pagina.put("inicio", Constantes.PAGINA_MAIN);
         hml_pagina.put("tarea", Constantes.PAGINA_LISTADO_TAREA);
         hml_pagina.put("reunion", Constantes.PAGINA_LISTADO_REUNION);
         hml_pagina.put("alerta", Constantes.PAGINA_LISTADO_ALERTA);
         hml_pagina.put("asignacion", Constantes.PAGINA_LISTADO_ASIGNACION);
         hml_pagina.put(Constantes.REF_PAGINA_FORM_USUARIO , Constantes.PAGINA_FORMULARIO_USUARIO);
         hml_pagina.put(Constantes.REF_PAGINA_FORM_PERFIL , Constantes.PAGINA_FORMULARIO_PERFIL);
         hml_pagina.put(Constantes.REF_PAGINA_FORM_DOCUMENTO , Constantes.PAGINA_FORMULARIO_DOCUMENTO);
         hml_pagina.put(Constantes.REF_PAGINA_FORM_REUNION , Constantes.PAGINA_FORMULARIO_REUNION);

        return hml_pagina.get(strA_pagina);
     }
     
     
     public static String obtenerTituloPagina(String strA_pagina){
         HashMap<String,String> hml_pagina = new HashMap<String, String>();
         hml_pagina.put("usuario", "Listado de usuarios");
         hml_pagina.put("perfil", "Listado de perfiles");
         hml_pagina.put("documento", "Listado de documentos");
         hml_pagina.put("mensaje", "Mensaje");
         hml_pagina.put("inicio", "Pagina de Inicio");
         hml_pagina.put("reunion", "Listado de Reuniones");
         hml_pagina.put("alerta", "Listado de Notificaciones");
         hml_pagina.put("asignacion", "Listado de Acuerdos");
         hml_pagina.put("tarea", "Listado de Tareas");
         hml_pagina.put(Constantes.REF_PAGINA_FORM_USUARIO , "Usuario");
         hml_pagina.put(Constantes.REF_PAGINA_FORM_PERFIL , "Perfil");
         hml_pagina.put(Constantes.REF_PAGINA_FORM_DOCUMENTO , "Documento");
         hml_pagina.put(Constantes.REF_PAGINA_FORM_REUNION , "Reunion");

        return hml_pagina.get(strA_pagina);
     }     
    public static HashMap<String, String> obtenerTipoDocumento() {
        HashMap<String, String> hmL_tipoDocumento = new HashMap<String, String>();
        hmL_tipoDocumento.put("td1", "Procedimiento");
        hmL_tipoDocumento.put("td2", "Manuales");
        hmL_tipoDocumento.put("td3", "Instructivos");
        hmL_tipoDocumento.put("td4", "Registros");
        return hmL_tipoDocumento;
    }
    public static Integer obtenerEnumSwitch(String strpv_metodo) {
        
        HashMap<String, Integer> hmL_area = new HashMap<String, Integer>();
        hmL_area.put("OBTENER_CARGOS", Constantes.METODO_OBTENER_CARGOS);
        hmL_area.put("tokenResponsable", Constantes.METODO_tokenResponsable);
        hmL_area.put("tokenResponsableCopia", Constantes.METODO_tokenResponsableCopia);
        hmL_area.put("tokenReunion", Constantes.METODO_tokenReunion);
        hmL_area.put("tokenResponsableRevisar", Constantes.METODO_tokenResponsableRevisar);
        hmL_area.put("tokenResponsableAprobar", Constantes.METODO_tokenResponsableAprobar);
        hmL_area.put("obtenerListadoParticipantes", Constantes.METODO_obtenerListadoParticipantes);
        hmL_area.put("obtenerUsuarioDocuLeido", Constantes.METODO_obtenerUsuarioDocuLeido);
        hmL_area.put("obtenerResponsableCopia", Constantes.METODO_obtenerResponsableCopia);
        hmL_area.put("obtenerFormatoDocumento", Constantes.METODO_obtenerFormatoDocumento);
        
         
        hmL_area.put("frmUsuario", Constantes.METODO_frmUsuario);
        hmL_area.put("frmPerfil", Constantes.METODO_frmPerfil);
        hmL_area.put("frmDocumento", Constantes.METODO_frmDocumento);
        hmL_area.put("frmReunion", Constantes.METODO_frmReunion);
        hmL_area.put("actualizarDocumento", Constantes.METODO_actualizarDocumento);
        hmL_area.put("form_asignacion", Constantes.METODO_form_asignacion); 
        hmL_area.put("actualizarPorcentajeAsignacion", Constantes.METODO_actualizarPorcentajeAsignacion);
        hmL_area.put("obtenerListadoParticipantesAsignados", Constantes.METODO_obtenerListadoParticipantesAsignados);
        hmL_area.put("registrarAsistenciaEmpleado", Constantes.METODO_registrarAsistenciaEmpleado);
        return hmL_area.get(strpv_metodo);
    } 
    public static HashMap<String, String> obtenerEmpresa() {

        HashMap<String, String> hmL_area = new HashMap<String, String>();
        hmL_area.put("1", "Empresa1");
        hmL_area.put("2", "Empresa2");
        hmL_area.put("3", "Empresa3");
        hmL_area.put("4", "Empresa4");
        return hmL_area;
    } 
    
    public static HashMap<String, String> obtenerEstadoDocument(){
        HashMap<String,String> mL_estadoDocumento = new HashMap<String, String>();
        mL_estadoDocumento.put("01", "Creado sin revision");
        mL_estadoDocumento.put("02", "revisado");
        mL_estadoDocumento.put("03", "Aprobado");
        
        return mL_estadoDocumento;
    }

     public static void returnJSONWriter( HttpServletResponse response , String strl_jsonString ) throws Exception {

    	response.setContentType("text/x-json;charset=UTF-8");           
    	response.setHeader("Cache-Control", "no-cache");
    	response.getWriter().write( strl_jsonString );
    	response.getWriter().flush();
    }
    public static  List<MenuBean> obtenerMenuPrincipal(PerfilBean objL ) {
        List<MenuBean> lstL_menuBean = new ArrayList<MenuBean>();
        if( objL.getStrpv_permisoAdminUsuario().equals("SI") ){
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_USUARIO));
        }
        if( objL.getStrpv_permisoAdminPerfil().equals("SI") ){
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_PERFIL));
        }
        if( objL.getStrpv_permisoCreacion().equals("SI") ){
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_DOCUMENTO));
        }else{
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_CONSULTA_DOCUMENTO));
        }
        
        
        lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_REUNIONES));
        
        if( objL.getStrpv_permisoAdminReunion().equals("SI") ){
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_ASIGNACION));
        }else{
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_TAREAS));
        }
        //lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_MENSAJES));        
        lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_PRINCIPAL_ADMIN_ALERTAS));
        
        
        return lstL_menuBean;
    
    }
    public static Object obtenerMenuPagina( String strpv_pagina, PerfilBean objL_perfil ) {
        List<MenuBean> lstL_menuBean = new ArrayList<MenuBean>();

        if( strpv_pagina.equals("usuario") ){

            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MODIFICAR));

        } else if( strpv_pagina.equals("reunion") ){

            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));
            if( objL_perfil.getStrpv_permisoAdminReunion().equals("SI") ){

                lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_ELIMINAR));
                lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MODIFICAR));
                lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_AGREGAR));
                lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_ASIGNACIONES));
                lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_ASISTENCIA));
            }

        } else if( strpv_pagina.equals("documento") ){

            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));

            if( objL_perfil.getStrpv_permisoConsulta().equals("SI") ){
                lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MARCAR_LEIDO));
            } else {
                if( objL_perfil.getStrpv_permisoCreacion().equals("SI") ){
                    lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_ELIMINAR));
                    lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MODIFICAR));
                    lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_AGREGAR));
                    lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_BITACORA));
                    //lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_AGREGAR_VERSION));
                }
                if( objL_perfil.getStrpv_permisoRevisar().equals("SI") ){
                    lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MARCAR_REVISADO));
                }
                if( objL_perfil.getStrpv_permisoAprobar().equals("SI") ){
                    lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MARCAR_APROBAR));
                }
            }

        } else if( strpv_pagina.equals("tarea") ){
            //ITEM_MENU_LISTADO_MARCAR_PORCENTAJE
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MARCAR_PORCENTAJE));
        } else if( strpv_pagina.equals("asignacion") ){


            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_DETALLE_AVANCE));
        } else if( strpv_pagina.equals("alerta") ){

            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));
        } else if( strpv_pagina.equals("perfil") ){

            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_ELIMINAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MODIFICAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_AGREGAR));
        } else {

            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_AGREGAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_MODIFICAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_ELIMINAR));
            lstL_menuBean.add(itemMenu(Constantes.ITEM_MENU_LISTADO_REGRESAR));
        }




        return lstL_menuBean;
    }
    
    public static MenuBean itemMenu(int intA_referencia) {
        MenuBean menuDocumento = new MenuBean();
        switch (intA_referencia) {
            case Constantes.ITEM_MENU_LISTADO_AGREGAR:
                menuDocumento.setStrpv_codigoMenu("01");
                menuDocumento.setStrpv_nombreMenu("Agregar");
                menuDocumento.setStrpv_urlImagen("img/icon/add.png");
                menuDocumento.setStrpv_idControl("btnAgregar");
                break;
            case Constantes.ITEM_MENU_LISTADO_MODIFICAR:
                menuDocumento.setStrpv_codigoMenu("02");
                menuDocumento.setStrpv_nombreMenu("Modificar");
                menuDocumento.setStrpv_urlImagen("img/icon/edit.png");
                menuDocumento.setStrpv_idControl("btnModificar");
                break;
            case Constantes.ITEM_MENU_LISTADO_ELIMINAR:
                menuDocumento.setStrpv_codigoMenu("03");
                menuDocumento.setStrpv_nombreMenu("Eliminar");
                menuDocumento.setStrpv_urlImagen("img/icon/delete.png");
                menuDocumento.setStrpv_idControl("btnEliminar");
                break;
            case Constantes.ITEM_MENU_LISTADO_REGRESAR:
                menuDocumento.setStrpv_codigoMenu("04");
                menuDocumento.setStrpv_nombreMenu("Regresar");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_back.png");
                menuDocumento.setStrpv_idControl("btnRegresar");
                break;
            case Constantes.ITEM_MENU_LISTADO_AGREGAR_VERSION:
                menuDocumento.setStrpv_codigoMenu("05");
                menuDocumento.setStrpv_nombreMenu("Agregar Version");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_newDoc.png");
                menuDocumento.setStrpv_idControl("btnAgregarVersion");
                break;                
            case Constantes.ITEM_MENU_LISTADO_AGREGAR_DOCUMENTO:
                menuDocumento.setStrpv_codigoMenu("06");
                menuDocumento.setStrpv_nombreMenu("Agregar Documento");
                menuDocumento.setStrpv_urlImagen("img/icon/add.png");
                menuDocumento.setStrpv_idControl("btnAgregar");
                break; 
            case Constantes.ITEM_MENU_LISTADO_ASIGNACIONES:
                menuDocumento.setStrpv_codigoMenu("07");
                menuDocumento.setStrpv_nombreMenu("Acuerdos");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_taks.png");
                menuDocumento.setStrpv_idControl("btnAsignacion");
                break;    
            case Constantes.ITEM_MENU_LISTADO_MARCAR_LEIDO:
                menuDocumento.setStrpv_codigoMenu("16");
                menuDocumento.setStrpv_nombreMenu("Leido");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_taks.png");
                menuDocumento.setStrpv_idControl("btnMarcarLeido");
                break;
            case Constantes.ITEM_MENU_LISTADO_MARCAR_REVISADO:
                menuDocumento.setStrpv_codigoMenu("19");
                menuDocumento.setStrpv_nombreMenu("Revisado");
                //menuDocumento.setStrpv_urlImagen("img/icon/admin_taks.png");
                menuDocumento.setStrpv_urlImagen("img/icon/estado/list-information.png");
                menuDocumento.setStrpv_idControl("btnMarcarRevisado");
                break;
            case Constantes.ITEM_MENU_LISTADO_MARCAR_APROBAR:
                menuDocumento.setStrpv_codigoMenu("18");
                menuDocumento.setStrpv_nombreMenu("Aprobado");
                //menuDocumento.setStrpv_urlImagen("img/icon/admin_taks.png");
                menuDocumento.setStrpv_urlImagen("img/icon/estado/list-accept.png");
                menuDocumento.setStrpv_idControl("btnMarcarAprobado");
                break;   
            case Constantes.ITEM_MENU_LISTADO_MARCAR_PORCENTAJE:
                menuDocumento.setStrpv_codigoMenu("21");
                menuDocumento.setStrpv_nombreMenu("Avance");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_taks.png");
                menuDocumento.setStrpv_idControl("btnMarcarAvance");
                break;
            case Constantes.ITEM_MENU_LISTADO_DETALLE_AVANCE:
                menuDocumento.setStrpv_codigoMenu("23");
                menuDocumento.setStrpv_nombreMenu("Detalle Avance");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_taks.png");
                menuDocumento.setStrpv_idControl("btnDetalleAvance");
                break;                  
            case Constantes.ITEM_MENU_LISTADO_ASISTENCIA:
                menuDocumento.setStrpv_codigoMenu("08");
                menuDocumento.setStrpv_nombreMenu("Asistencia");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_asistencia.png");
                menuDocumento.setStrpv_idControl("btnParticipante");
                break;
            case Constantes.ITEM_MENU_LISTADO_BITACORA:
                menuDocumento.setStrpv_codigoMenu("20");
                menuDocumento.setStrpv_nombreMenu("Bitacora");
                //menuDocumento.setStrpv_urlImagen("img/icon/admin_taks.png");
                menuDocumento.setStrpv_urlImagen("img/icon/estado/list-bitacora.png");
                menuDocumento.setStrpv_idControl("btnBitacora");                
                break;                  
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_USUARIO:
                menuDocumento.setStrpv_codigoMenu("9");
                menuDocumento.setStrpv_nombreMenu("Administración de Usuarios");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=usuario");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_users.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;                  
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_DOCUMENTO:
                menuDocumento.setStrpv_codigoMenu("11");
                menuDocumento.setStrpv_nombreMenu("Administracion de Documentos");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=documento");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_document.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;
            case Constantes.ITEM_MENU_PRINCIPAL_CONSULTA_DOCUMENTO:
                menuDocumento.setStrpv_codigoMenu("16");
                menuDocumento.setStrpv_nombreMenu("Documentos");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=documento");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_document.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_PERFIL:
                menuDocumento.setStrpv_codigoMenu("10");
                menuDocumento.setStrpv_nombreMenu("Administración de Perfiles");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=perfil");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_profile3.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_MENSAJES:/*NO UTILIZADO*/
                menuDocumento.setStrpv_codigoMenu("12");
                menuDocumento.setStrpv_nombreMenu("MENSAJES");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=mensaje");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_message.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_ALERTAS:
                menuDocumento.setStrpv_codigoMenu("13");
                menuDocumento.setStrpv_nombreMenu("Notificaciones");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=alerta");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_notification.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_REUNIONES:
                menuDocumento.setStrpv_codigoMenu("14");
                menuDocumento.setStrpv_nombreMenu("Reuniones");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=reunion");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_schedule.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_TAREAS:
                menuDocumento.setStrpv_codigoMenu("15");
                menuDocumento.setStrpv_nombreMenu("Tareas");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=tarea");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_task.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;        
            case Constantes.ITEM_MENU_PRINCIPAL_ADMIN_ASIGNACION:
                menuDocumento.setStrpv_codigoMenu("22");
                menuDocumento.setStrpv_nombreMenu("Detalle de Acuerdos");
                menuDocumento.setStrpv_url("ServletConsulta?metodo=pagina&a=asignacion");
                menuDocumento.setStrpv_urlImagen("img/icon/admin_task.png");
                //menuDocumento.setStrpv_idControl("btnDocumento");
                break;        
        }
        return menuDocumento;
    }
    
    public static HashMap<Integer, Integer> ObtenerSelectCopias(){
        HashMap<Integer, Integer> hmL_temp = new HashMap<Integer, Integer>();
        for(int i=0; i<Constantes.MAX_NUM_COPIAS ;i++){
            hmL_temp.put(i, i);
        }
        return hmL_temp;
    }

    public static ArrayList<CargoBean> convertirStringListCargo( String strpv_lstCargo ){
        ArrayList<CargoBean> lst_cargoBean = new ArrayList<CargoBean>();
        if( !strpv_lstCargo.isEmpty() ){
            String[] srtarrl_cargos = strpv_lstCargo.split(",");
            for( int i=0;  i < srtarrl_cargos.length ; i++){
                lst_cargoBean.add(new CargoBean( srtarrl_cargos[i], "") );
            }
        }
        return lst_cargoBean;   
    }
    public static ArrayList<UsuarioBean> convertirStringListUsuario( String strpv_lstUsuario ){
        ArrayList<UsuarioBean> lstL_usuario = new ArrayList<UsuarioBean>();
        if( !strpv_lstUsuario.isEmpty() ){
            System.out.println("1111");
            String[] srtarrl_cargos = strpv_lstUsuario.split(",");
            for( int i=0;   i < srtarrl_cargos.length ; i++){
                System.out.println("222");
                lstL_usuario.add(new UsuarioBean( srtarrl_cargos[i] ) );
            }
        }
        return lstL_usuario;   
    }    
    
    public  static String convertirCodigoEstadoImagen( String strpv_codigoEstado ){
        System.out.println("convertirCodigoEstadoImagen/strpv_codigoEstado"+strpv_codigoEstado);
        String img="";
        if( strpv_codigoEstado.equals("02") ){ // ACTIVO
            img   =  "list-delete";
        }else if( strpv_codigoEstado.equals("03") ){ // OBSOLETO
            img   =  "list-accept";
        }

        return img;
    }
    
    
    
    public static String ListaJSONDocumentoVersion( List<DocumentoBean> lstl_documento){
    	List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
    	
    	int intl_count = 0;
        for ( DocumentoBean objl_documento:lstl_documento ){
            intl_count++;

            List<String> lstString = new ArrayList<String>();

            lstString.add("\"" + objl_documento.getStrpv_codigoDocumento() + "\"");
            lstString.add("\"" + objl_documento.getStrpv_nombreDocumento() + "\"");
            lstString.add("\"" + "<img src='img/icon/icon_pdf.png'/>"+ "\"");
            lstString.add("\"" + "<img width='20' src='img/icon/estado/"+objl_documento.getStrpv_imagenEstado()+".png'/>"+ "\"");
            lstString.add("\"" + "<img class='btnConsultarVersionCodigo' width='20' src='img/icon/old-edit-find.png'/>"+ "\"");
            
            
            
            lstGeneral.add(lstString);
        }
        
        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
    	return sb.toString();
    }  
    public static String ListaJSONAsignacion( List<AsignacionBean> lstl_asignacion){
    	List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
    	
    	int intl_count = 0;
        for ( AsignacionBean objl :lstl_asignacion ){
            intl_count++;

            List<String> lstString = new ArrayList<String>();

            lstString.add("\"" + objl.getStrpv_codigoAsignacion() + "\"");
            lstString.add("\"" + objl.getStrpv_codigoReunion() + "\"");
            lstString.add("\"" + objl.getStrpv_nombreAsignacion() + "\"");
            lstString.add("\"" + objl.getStrpv_fechaPlazo() + "\"");
            lstString.add("\"" + "<img width='10px' onclick='fnEditarAsignacion("+objl.getStrpv_codigoAsignacion()+")' src='img/icon/edit_pen.png'>" + "\"");
            lstString.add("\"" + "<img width='10px' onclick='fnEliminarAsignacion("+objl.getStrpv_codigoAsignacion()+")' src='img/icon/delete_grid.png'>" + "\"");

            lstGeneral.add(lstString);
        }
        
        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
    	return sb.toString();
    } 
    public static String ListaJSONAsignacionDetalle( List<AsignacionBean> lstl_asignacion){
    	List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
    	
    	int intl_count = 0;
        for ( AsignacionBean objl :lstl_asignacion ){
            intl_count++;

            List<String> lstString = new ArrayList<String>();

            lstString.add("\"" + objl.getStrpv_codigoAsignacion() + "\"");
            lstString.add("\"" + objl.getStrpv_codigoReunion() + "\"");
            lstString.add("\"" + objl.getStrpv_nombreReunion() + "\"");
            lstString.add("\"" + objl.getStrpv_nombreAsignacion() + "\"");
            lstString.add("\"" + objl.getStrpv_numPersona() + "\"");
            lstString.add("\"" + objl.getStrpv_fechaPlazo() + "\"");
            lstGeneral.add(lstString);
        }
        
        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
    	return sb.toString();
    }     
    public static String ListaJSONUsuario( List<UsuarioBean> lstl_usuario){
    	List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
    	
    	int intl_count = 0;
        for ( UsuarioBean objl :lstl_usuario ){
            intl_count++;

            List<String> lstString = new ArrayList<String>();

            lstString.add("\"" + objl.getStrpv_codigoUsuario() + "\"");
            lstString.add("\"" + objl.getStrpv_nombreUsuario() + "\"");
            lstString.add("\"" + objl.getStrpv_nombrePerfil() + "\"");
            lstString.add("\"" + objl.getStrpv_estadoUsuarioPerfil() + "\"");

            lstGeneral.add(lstString);
        }
        
        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
    	return sb.toString();
    }      

    public static String ListaJSONTarea( List<TareaBean> lstl_tarea){
    	List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
    	
    	int intl_count = 0;
        for ( TareaBean objl :lstl_tarea ){
            intl_count++;

            List<String> lstString = new ArrayList<String>();

            lstString.add("\"" + objl.getStrpv_codigoAsignacion() + "\"");
            lstString.add("\"" + objl.getStrpv_nombreTarea() + "\"");
            lstString.add("\"" + objl.getStrpv_descripcionTarea() + "\"");
            lstString.add("\"" + objl.getStrpv_fechaPlazo() + "\"");
            lstString.add("\"" + objl.getStrpv_porcentaje() + "%" + "\"");

            lstGeneral.add(lstString);
        }
        
        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
    	return sb.toString();
    }       
    public static String ListaJSONPerfil( List<PerfilBean> lstL_perfil ) {
        List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
    	
    	int intl_count = 0;
        for ( PerfilBean objl : lstL_perfil ){
            intl_count++;

            List<String> lstString = new ArrayList<String>();

            lstString.add("\"" + objl.getStrpv_nombrePerfil() + "\"");
            lstString.add("\"" + objl.getStrpv_codigoEstadoPerfil() + "\"");
            lstString.add("\"" + objl.getStrpv_permisoCreacion() + "\"");
            lstString.add("\"" + objl.getStrpv_permisoRevisar() + "\"");
            lstString.add("\"" + objl.getStrpv_permisoAprobar() + "\"");
            lstString.add("\"" + objl.getStrpv_permisoConsulta() + "\"");
            lstString.add("\"" + objl.getStrpv_codigoPerfil() + "\"");

            lstGeneral.add(lstString);
        }
        
        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
    	return sb.toString();
    }
    public static String ListaJSONDocumentoRegistro( List<DocumentoBean> lstL, String strpv_tipoListado ) {
        int intl_count = 0;
        List<JSONObject> list_JSON = new ArrayList<JSONObject>();
        JSONObject jsonGeneral = new JSONObject();
        try {

            for( DocumentoBean objl : lstL ) {
                intl_count++;
                JSONObject jsonTemp = new JSONObject();
                StringArray sarrTemp = new StringArray();
                jsonTemp.put( "id", 100+intl_count );
          
                sarrTemp.add( objl.getStrpv_codigoReferencial() );
                sarrTemp.add( objl.getStrpv_nombreDocumento() );
                Integer itemp = Integer.parseInt( objl.getStrpv_codigoVersion() );
                sarrTemp.add( String.format( "%03d", itemp ) );
                //sarrTemp.add( objl.getStrpv_nombreResponsableCopia() );
                //sarrTemp.add( objl.getStrpv_fechaAprobacion() );
                //sarrTemp.add( objl.getStrpv_fechaVigencia() );
                //sarrTemp.add( objl.getStrpv_ubicacion() );
                //sarrTemp.add( objl.getStrpv_numeroCopia() + ( !"0".equals( objl.getStrpv_numeroCopia() ) ? "<img style='margin-left:10px' onclick='fnObtenerResponsableCopia(" + objl.getStrpv_codigoDocumento() + ")' src='img/icon/admin_find.png' id='btnResponsable' border='0' />" : "" ) );

                sarrTemp.add( "<a href='ServletArchivo?strpv_codigoDocumento=" + objl.getStrpv_codigoDocumento() + "'><img src='img/icon/icon_pdf.png' border='0' /></a>" );
                //sarrTemp.add( Util.obtenerNombreEstado( objl.getStrpv_codigoEstadoDocumento() ) );
                jsonTemp.put( "cell", sarrTemp.getArray() );
                list_JSON.add( jsonTemp );
            }
            jsonGeneral.put( "rows", list_JSON );

        } catch ( JSONException ex ) {
            Logger.getLogger( Util.class.getName() ).log( Level.SEVERE, null, ex );
        }
        return jsonGeneral.toString();
    }
    public static String ListaJSONDocumento(List<DocumentoBean> lstL,String strpv_tipoListado ) {
        List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
        List<JSONObject> list_JSON = new ArrayList<JSONObject>();
        List<JSONObject> list_JSON2 = new ArrayList<JSONObject>();
    	int intl_count = 0;
               JSONObject jsonGeneral = new JSONObject();
        
        if( "documento".equals(strpv_tipoListado) ){
            try {
                for( DocumentoBean objl : lstL ) {
                    intl_count++;

                    List<String> lstString = new ArrayList<String>();
                    lstString.add( "\"" + objl.getStrpv_codigoDocumento() + "\"" );
                    lstString.add( "\"" + objl.getStrpv_codigoVersion() + "\"" );
                    //lstString.add("\"" + objl.getStrpv_descripcionEmpresa() + "\"");
                    lstString.add( "\"" + objl.getStrpv_descripcionTipoDocumento() + "\"" );
                    lstString.add( "\"" + objl.getStrpv_codigoReferencial() + "\"" );
                    lstString.add( "\"" + objl.getStrpv_nombreDocumento() + "\"" );
                    Integer itemp = Integer.parseInt( objl.getStrpv_codigoVersion() );
                    lstString.add( "\"" + String.format( "%03d", itemp ) + "\"" );
                    lstString.add( "\"" + objl.getStrpv_nombreResponsableCopia() + "\"" );
                    lstString.add( "\"" + objl.getStrpv_fechaAprobacion() + "\"" );
                    lstString.add( "\"" + objl.getStrpv_fechaVigencia() + "\"" );
                    lstString.add( "\"" + objl.getStrpv_ubicacion() + "\"" );
                    lstString.add( "\"" + objl.getStrpv_numeroCopia() + ( !"0".equals( objl.getStrpv_numeroCopia() ) ? "<img style='margin-left:10px' onclick='fnObtenerResponsableCopia(" + objl.getStrpv_codigoDocumento() + ")' src='img/icon/admin_find.png' id='btnResponsable' border='0' />" : "" ) + "\"" );
                    //lstString.add("\"" + objl.getStrpv_nombreResponsableCopia() + "\"");
                    lstString.add( "\"" + "<a href='ServletArchivo?strpv_codigoDocumento=" + objl.getStrpv_codigoDocumento() + "'><img src='img/icon/icon_pdf.png' border='0' /></a>" + "\"" );
                    lstString.add( "\"" + Util.obtenerNombreEstado( objl.getStrpv_codigoEstadoDocumento() ) + "\"" );
                    lstGeneral.add(lstString);
                    /*
                    JSONObject jsonTemp = new JSONObject();
                    StringArray sarrTemp = new StringArray();
                    jsonTemp.put("id",intl_count );
                    jsonTemp.put("strpv_codigoDocumento",objl.getStrpv_codigoDocumento() );
                    jsonTemp.put("strpv_codigoVersion",objl.getStrpv_codigoVersion() );
             
                    sarrTemp.add( objl.getStrpv_codigoDocumento() );
                    sarrTemp.add( objl.getStrpv_codigoVersion() );
                    sarrTemp.add( objl.getStrpv_descripcionTipoDocumento() );
                    sarrTemp.add( objl.getStrpv_codigoReferencial() );
                    sarrTemp.add( objl.getStrpv_nombreDocumento() );
                    Integer itemp = Integer.parseInt( objl.getStrpv_codigoVersion() );
                    sarrTemp.add( String.format( "%03d", itemp ) );
                    //sarrTemp.add( objl.getStrpv_nombreResponsableCopia() );
                    sarrTemp.add( objl.getStrpv_fechaAprobacion() );
                    sarrTemp.add( objl.getStrpv_fechaVigencia() );
                    sarrTemp.add( objl.getStrpv_ubicacion()  );
                    sarrTemp.add( objl.getStrpv_numeroCopia() + ( !"0".equals( objl.getStrpv_numeroCopia() ) ? "<img style='margin-left:10px' onclick='fnObtenerResponsableCopia(" + objl.getStrpv_codigoDocumento() + ")' src='img/icon/admin_find.png' id='btnResponsable' border='0' />" : "" )  );
                    
                    sarrTemp.add( "<a href='ServletArchivo?strpv_codigoDocumento=" + objl.getStrpv_codigoDocumento() + "'><img src='img/icon/icon_pdf.png' border='0' /></a>" );
                    sarrTemp.add( Util.obtenerNombreEstado( objl.getStrpv_codigoEstadoDocumento() ) );
                    jsonTemp.put("cell", sarrTemp.getArray() );
                    list_JSON2.add( jsonTemp );*/
                }
                
                
                jsonGeneral.put( "page", "1" );
                jsonGeneral.put( "total", lstL.size() );
                jsonGeneral.put( "records", "5" );
                jsonGeneral.put( "rows", list_JSON2 );
                 
            } catch ( JSONException ex ) {
                Logger.getLogger( Util.class.getName() ).log( Level.SEVERE, null, ex );
            }
        } else if( "documento_consulta".equals(strpv_tipoListado) ){
            for( DocumentoBean objl : lstL ) {
                intl_count++;

                List<String> lstString = new ArrayList<String>();
                lstString.add("\"" + objl.getStrpv_codigoDocumento() + "\"");
                lstString.add("\"" + objl.getStrpv_codigoVersion() + "\"");
                lstString.add("\"" + objl.getStrpv_descripcionEmpresa() + "\"");
                lstString.add("\"" + objl.getStrpv_codigoReferencial() + "\"");
                lstString.add("\"" + objl.getStrpv_nombreDocumento() + "\"");
                Integer itemp = Integer.parseInt(objl.getStrpv_codigoVersion());
                lstString.add("\"" + String.format("%03d", itemp) + "\"");
                lstString.add("\"" + "<a href='ServletArchivo?strpv_codigoDocumento="+objl.getStrpv_codigoDocumento()+"'><img src='img/icon/icon_pdf.png' border='0' /></a>" + "\"");
                lstString.add("\"" + Util.obtenerNombreEstado(objl.getStrpv_codigoEstadoUsuario())+ "\"");

                lstGeneral.add(lstString);
            }
        }
        else if( "documento_revision".equals(strpv_tipoListado) ){
            for( DocumentoBean objl : lstL ) {
                intl_count++;

                List<String> lstString = new ArrayList<String>();
                lstString.add("\"" + objl.getStrpv_codigoDocumento() + "\"");
                lstString.add("\"" + objl.getStrpv_codigoVersion() + "\"");
                lstString.add("\"" +  objl.getStrpv_descripcionTipoDocumento() + "\"");
                lstString.add("\"" + objl.getStrpv_codigoReferencial() + "\"");
                lstString.add("\"" + objl.getStrpv_nombreDocumento() + "\"");
                Integer itemp = Integer.parseInt(objl.getStrpv_codigoVersion());
                lstString.add("\"" + String.format("%03d", itemp) + "\"");
                lstString.add("\"" + "<a href='ServletArchivo?strpv_codigoDocumento="+objl.getStrpv_codigoDocumento()+"'><img src='img/icon/icon_pdf.png' border='0' /></a>" + "\"");
                lstString.add("\"" + Util.obtenerNombreEstado(objl.getStrpv_codigoEstadoDocumento()) + "\"");

                lstGeneral.add(lstString);
            }
        }
        
        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
                
    	return sb.toString();
    }
    public static String ListaJSONReunion(List<ReunionBean> lstL, String tipo_usuario) {
        List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
    	
    	int intl_count = 0;
        if( "ADMIN".equals(tipo_usuario) ){

            for( ReunionBean objl : lstL ) {
                intl_count++;

                List<String> lstString = new ArrayList<String>();
                lstString.add("\"" + objl.getStrpv_codigoReunion() + "\"");
                lstString.add("\"" + objl.getStrpv_nombreReunion() + "\"");
                lstString.add("\"" + objl.getStrpv_numParticipante() + "\"");
                lstString.add("\"" + objl.getStrpv_fechaReunion() + "\"");
                lstGeneral.add(lstString);
            }
                
        }
        if( "CONSULTA".equals(tipo_usuario) ){
            for( ReunionBean objl : lstL ) {
                intl_count++;

                List<String> lstString = new ArrayList<String>();
                lstString.add("\"" + objl.getStrpv_codigoReunion() + "\"");
                lstString.add("\"" + objl.getStrpv_nombreReunion() + "\"");
                lstString.add("\"" + objl.getStrpv_numParticipante() + "\"");
                lstString.add("\"" + objl.getStrpv_fechaReunion() + "\"");
                lstGeneral.add(lstString);
            }            
            
        }

        
        StringBuilder sb = new StringBuilder(); 
		sb.append("{\"aaData\": ").
		append(lstGeneral.toString()).append("}");
    	return sb.toString();
    }

    public static String obtenerNombreEstado(String strpv_codigoEstado){
        
         HashMap<String,String> hml_pagina = new HashMap<String, String>();
         hml_pagina.put("CS", "Creado sin revision");
         hml_pagina.put("RE", "Revisado");
         hml_pagina.put("AP", "Aprobado");
 
         hml_pagina.put("NL", "No leido");
         hml_pagina.put("LE", "Leido");
        
        return hml_pagina.get(strpv_codigoEstado.trim());
        
    }

   // public static String ListaJSONAsignacion( List<ReunionBean> list ) {
        //throw new UnsupportedOperationException("Not yet implemented");
   // }

    public static String ListaJSONAlerta( List<AlertaBean> lstl_alerta ) {
        try {
           List<Collection<String>> lstGeneral = new ArrayList<Collection<String>>();
           List<String> lstString = null;
            JSONObject jsonTemp = new JSONObject();
            for( AlertaBean objl : lstl_alerta ) {
                lstString = new ArrayList<String>();
                lstString.add( objl.getStrpv_codigoAlerta() );
                lstString.add( objl.getStrpv_descripcionAlerta() );
                lstString.add( objl.getStrpv_fechaAlerta() );
                lstGeneral.add( lstString );
            }
            jsonTemp.put( "aaData", lstGeneral );
            StringBuilder sb = new StringBuilder();
            sb.append( jsonTemp.toString() );
            return sb.toString();
        } catch ( JSONException ex ) {
            Logger.getLogger( Util.class.getName() ).log( Level.SEVERE, null, ex );
        }
        return null;
    }

    public static Object ObtenerSelectTipoUbicacion() {
        HashMap<Integer, String> hmL_temp = new HashMap<Integer, String>();

        hmL_temp.put(1, "INTRANET");
        hmL_temp.put(2, "OTROS");

        return hmL_temp;
    }
    public static boolean validarFormatoString( String sTemp ){
        boolean blpv_temp = false;
        if( sTemp != null && sTemp.trim().length() > 0 ) {
            blpv_temp = true;
        }
        return blpv_temp;
    }
    
    public static String obtenerImagenxExtension( String sTemp ) {
        System.out.println( "sTemp---sTemp" + sTemp );
        HashMap<String, String> hmL_temp = new HashMap<String, String>();
        
        hmL_temp.put( "xls", "page_excel.png" );
        hmL_temp.put( "xlsx", "page_excel.png" );
        hmL_temp.put( "doc", "page_word.png" );
        hmL_temp.put( "docx", "page_word.png" );
        
        return hmL_temp.get( sTemp.trim() ).toString();
    }

}
